package com.kika.obwiki.service;

import com.kika.obwiki.entity.User;
import com.kika.obwiki.rep.UserQueryReq;
import com.kika.obwiki.rep.UserResetPasswordReq;
import com.kika.obwiki.rep.UserSaveReq;
import com.kika.obwiki.rep.UserLoginReq;
import com.kika.obwiki.resp.PageResp;
import com.kika.obwiki.resp.UserQueryResp;
import com.kika.obwiki.resp.UserLoginResp;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 用户服务接口
 * 提供用户管理相关的业务方法
 *
 * @author cr
 * @since 2025-06-22
 */
public interface IUserService extends IService<User> {

  /**
   * 根据名称查询用户列表
   * 
   * @param req 查询请求参数
   * @return 分页响应结果
   */
  PageResp<UserQueryResp> listByname(UserQueryReq req);

  /**
   * 保存用户信息
   * 
   * @param req 保存请求参数
   */
  void save(UserSaveReq req);

  /**
   * 删除用户
   * 
   * @param id 用户ID
   */
  void delete(Long id);

  /**
   * 重置用户密码
   * 
   * @param req 重置密码请求参数
   */
  void resetPassword(UserResetPasswordReq req);

  /**
   * 用户登录
   * 
   * @param req 登录请求参数
   * @return 登录响应数据
   */
  UserLoginResp login(UserLoginReq req);
}
